Data communication devices, such as wireless communication devices, typically employ Medium Access Control (MAC) functionality for controlling access to a physical transmission medium of the device. Typically, MAC functionality is implemented in software running on a processor. Moreover, data communication devices include a number of other software applications running on a processor, applications for rendering and transmitting voice communication.
Current implementations of data communication devices typically employ dual-core (e.g., two processors) architecture. Without two processors, a software MAC may introduce problems detrimentally affecting the performance of the data communication device. For instance, modem functions and media processing using the software MAC have tight real-time processing requirements. While other applications do not have these tight real-time processing requirements, the application drivers include disable interrupts for accessing a processor. These disable interrupts interfere with real-time functions. In other words, the processing of the software MAC functions having tight real-time constraints and the other applications not having tight real-time constraints are mutually exclusive to a single processor, as a processor can only be accessed once at any time. This fundamental incompatibility is solved by multiple processors.
However, the design and modification of communication devices including two processors is complex and expensive. Moreover, where one of the processors is a digital signal processor (DSP), as is typically the case, the design and modification becomes even more complex and expensive. DSPs require specialized toolsets and firmware, and software engineers who design DSPs require specialized training. Also, DSPs are considerably more expensive than standard processors. Furthermore, the operation of two processors consumes more power and is more expensive than the operation of a single processor. In particular, typical communication devices employ architectures that require that the processors are always active, increasing power consumption and thus reducing battery life.